package org.jeecg.modules.power.order.mapper;

import java.util.Date;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.power.order.entity.YlPowerBankOrder;

/**
 * @Description: 租借充电宝订单
 * @Author: jeecg-boot
 * @Date:   2024-07-22
 * @Version: V1.0
 */
public interface YlPowerBankOrderMapper extends BaseMapper<YlPowerBankOrder> {



    /**
     * 后台首页租借订单统计
     * @param type 1今日、2昨日、3本周、4本月 0全部
     * @return
     */
    Map<String, Object> getHomePowerBankOrder(@Param("userIds") String userIds,@Param("type") int type);



    /**
     * app首页租借订单统计 收益
     * @param type 1今日、2昨日、3本周、4本月   0全部
     * @return
     */
    Map<String, Object> getAppPowerBankOrderIncome(@Param("userIds") String userIds,@Param("type") int type);


    /**
     * APP运营端-首页租借订单统计数量 根据日期
     * @param userIds
     * @param day  日期
     * @param type 1 今日下单  2归还充电宝
     * @return
     */
    Map<String, Object>  getDayOrderQuantity (@Param("userIds") String userIds,@Param("day") String day,@Param("type") int type);


    /**
     * APP运营端-收益页-2级页面-门店收益-门店设备收益
     * @param shopId 店铺id
     * @param dayStart 开始时间
     * @param dayEnd 结束时间
     * @return
     */
    Map<String, Object> getTwoShopIncomeOrder(@Param("shopId")String shopId,@Param("dayStart") String dayStart,@Param("dayEnd") String dayEnd);


    /**
     *  APP运营端-收益页-2级页面-门店设备收益
     * @param shopId 店铺id
     * @param categoryId 设备类型id
     * @return
     */
    List<Map<String, Object>> getTwoShopDeviceOrder(@Param("userIds") String userIds,@Param("shopId")String shopId,@Param("categoryId") String categoryId,@Param("type") int type);




    /**
     * APP运营端-首页租借订单统计数量
     * @param userIds
     * @param type
     * @return
     */
    Map<String, Object>  getHomePowerBankOrderQuantity (@Param("userIds") String userIds,@Param("type") int type);


    /**
     * 获取最新更新时间 给前端接口用
     * @param userIds
     * @return
     */
    YlPowerBankOrder getMaxPowerBankOrder(@Param("userIds") String userIds);









    /**
     * 给前端用 获取 时间范围数据  折线图 30天
     * 首页租借收益订单折线图
     * @param dayStart 开始时间
     * @param dayEnd  结束时间
     * @return
     */
    List<Map<String, Object>> getPowerBankOrderOrderDayList(@Param("userIds") String userIds,@Param("dayStart") Date dayStart,@Param("dayEnd")  Date dayEnd);



//       /**
//     * 给前端用 获取 时间范围数据  折线图 6个月
//     * 首页租借收益订单折线图
//     * @param dayStart 开始时间
//     * @param dayEnd  结束时间
//     * @return
//     */
   List<Map<String, Object>> getPowerBankOrderOrderYueList(@Param("userIds") String userIds,@Param("dayStart") Date dayStart,@Param("dayEnd")  Date dayEnd);


    /**
     * APP运营端首页-求出订单硬件问题 统计 正常下单数量
     * @param mac mac
     * @param type 1今日、2昨日、3本周、4本月   0全部
     * @return
     */

    Integer getProblemOrderAndBankOrderOrderQuantity(@Param("mac") String mac, @Param("type") int type);





    //APP运营端首页-门店统计-  查7天没有收益的店铺 坐统计 getShopQuantity
    Integer getShopQuantity(@Param("shopId") String shopId);


    /**
     * 门店详情 -进入统计模块-数据 (数据统计)
     * @param shopId 店铺id
     * @param type   1 今日  2昨日 3 近7天 (不包含当天) 4本月
     * @return
     */
    Map<String, Object> getShopIdData(@Param("shopId") String shopId, @Param("type") int type);


    /**
     * 根据店铺id 门店详情 -进入统计模块-数据 及数据 近30天 数据
     * @param shopId  店铺id
     * @param dayStart 开始时间
     * @param dayEnd  结束时间
     * @return
     */
    List<Map<String, Object>> getShopIdThirtyDate(@Param("shopId") String shopId,@Param("dayStart") String dayStart,@Param("dayEnd")  String dayEnd);

    /**
     * 根据店铺id 门店详情 -进入统计模块-数据 及数据 近6个月 数据
     * @param shopId  店铺id
     * @param dayStart 开始时间
     * @param dayEnd  结束时间
     * @return
     */
    List<Map<String, Object>> getShopIdMonthDate(@Param("shopId") String shopId,@Param("dayStart") String dayStart,@Param("dayEnd")  String dayEnd);
}
